#ifndef _State_H_
#define _State_H_

#include <d3dx9.h>
#include "..\Define.h"
#include "..\Network\Structure.h"

class State
{
public:

	State():m_iState(-1) {}
	virtual ~State(){}

	virtual bool Create( IDirect3DDevice9 *pkDevice, SOCKET iSocket ) = 0;
	virtual void Update( unsigned int dt ) = 0;
	virtual void Render() = 0;
	virtual void Release() = 0;
	virtual void NetWorkRecv( char *Buf ) = 0;


	virtual void OnKeyDown( int Key,  bool Down ) = 0;
	virtual void OnKeyUp( int Key, bool Down ) = 0;
	virtual void OnMouseMove( int MouseX, int MouseY ) = 0;
	virtual void OnLButton( bool Down ) = 0;
	virtual void OnRButton( bool Down ) = 0;

	int GetStateNum() { return m_iState; }

protected:

	int m_iState;


};

#endif // _State_H_